package com.wwh.Thread;
/*
 * 模拟火车站售票窗口,开启三个窗口售票,总票数为100张
 * 解决线程安全问题: ---》继承的方式对象不是唯一,所以不能同步方法
 */
class Window2 extends Thread{
	static int ticket = 100;
	static Object obj = new Object();
	public void run(){
		while(true){
			//synchronized (this) { // 在本问题中,this表示 w1,w2,w3
			synchronized (obj) {
//				
			if (ticket > 0) {
				try {
					Thread.currentThread().sleep(10);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				System.out.println(Thread.currentThread().getName() + "售票为:" + ticket--);
			}
			}
		}
	}
	
	public synchronized void show(){
		
	}
}

public class TestWindow6 {
	public static void main(String[] args) {
		Window1 w1 = new Window1();
		Window1 w2 = new Window1();
		Window1 w3 = new Window1();
		
		w1.setName("窗口1");
		w2.setName("窗口2");
		w3.setName("窗口3");
		
		w1.start();
		w2.start();
		w3.start();
	}
}
